/**
 * pagination request params
 */
export interface QueryParams {
  pageSize: number
  page: number
  sortField?: string
  sortOrder?: number
  [key: string]: any
}

/**
 * pagination response data
 */
export interface QueryResult<T> {
  total: number
  items: T[]
}

/**
 * api response
 */
 export interface Response {
  status: number
  message: string
  data?: any
}

/**
 * login request
 */
export interface LoginRequest {
  username: string
  password: string
  autologin?: boolean
}

/**
 * user
 */
export interface User {
  id?: number
  username: string
  name: string
  avatar?: string
  roles: string[]
  status: number
  department?: string
  email?: string
  created_at?: string
  [key: string]: any
}

export interface Menu {
  id?: number
  title: string
  parent_id: number
  icon: string
  route: string
  children?: Menu[]
  [key: string]: any
}

export interface JDOrder {
  id: string
  start_month_code: string
  version: string
  length: number
  price: number
  status: number
  processed_at: string
  user: string
  cellphone: string
  type: string
}

interface Item {
  code: string
  name: string
  [key: string]: any
}

export interface Role extends Item {}

export interface Permission extends Item {}

export interface Pump {
  id: string
  uuid: string
  status: number
  processed_at: string
}



export interface Log {
  message: string
  ip: string
  isException: boolean
  created_at: string
}
